Arrange-Act-Assert パターン
- Arrange: 準備
- Act: テスト対象の振る舞いを実行
- Assert: 検証
というかたまりを作り、何がテスト対象なのかを明確にするテスト記述パターン。
func test_sampleTest() {
// Arrange
let hoge(isFuga: true)
let expectation = "expect this"
// Act
hoge.doSomething(withNumber: 10)
// Assert
XCTAssertEqual(hoge.value, expectation)
}
- また、似たようなフレームワークとして、振る舞い駆動開発 (Behavior-driven development) にて導入された given-when-then パターン (GWT) もある。
- GWT と AAA は似たようで、どちらを使うべきかという話はちょこちょこ見かけた。
- UI のテストは AAA パターンより Given-When-Then パターンの方がしっくりくるかもしれない
- 個人的にはまあどちらでもいいかなという印象で、既にどちらかで実装されているならわざわざ変える必要は無いかなと感じた。